#include <Arduino.h>
#include <Adafruit_Sensor.h>
#include <DHT.h> //温湿度传感器驱动库

//DHT11温湿度传感器相关定义
#define DHTPIN 4 //传感器引脚连接4
#define DHTTYPE DHT11 //传感器支持DHT11, DHT12, DHT21, DHT22, AM2301


DHT dht(DHTPIN, DHTTYPE); //初始化温湿度传感器

//湿度 和 温度 的全局变量
float humidity=0, temperature=0;

//温湿度传感器数值读取
void readDHT(void) 
{
  //读取温度参数保存到全局变量中
  humidity = dht.readHumidity();
  //读取湿度参数保存到全局变量中
  temperature = dht.readTemperature();

  //判断温湿度数据是否是非数字
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
}

void setup() 
{
  //串口初始化
  Serial.begin(9600);
  //DHT11初始化
  dht.begin();
}

void loop() 
{
  char disp_buf[50] = {0};
  
  readDHT(); //读取温湿度参数

  //格式化字符串
  sprintf(disp_buf, "temperature=%02.0d C", (int)temperature);
  //输出温度
  Serial.println(disp_buf);

  //格式化字符串
  sprintf(disp_buf, "humidity=%02.0d %%", (int)humidity);
  //输出湿度
  Serial.println(disp_buf);

  delay(1000);
}

